<!DOCTYPE html>
<html>
    <head>
        <meta charset='UTF-8' />
        <title>Performance comparison of analytical DBMS</title>

<style type='text/css'>

@font-face {
    font-family:'Yandex Sans Display Web';
    src:url(https://yastatic.net/adv-www/_/H63jN0veW07XQUIA2317lr9UIm8.eot);
    src:url(https://yastatic.net/adv-www/_/H63jN0veW07XQUIA2317lr9UIm8.eot?#iefix) format('embedded-opentype'),
            url(https://yastatic.net/adv-www/_/sUYVCPUAQE7ExrvMS7FoISoO83s.woff2) format('woff2'),
            url(https://yastatic.net/adv-www/_/v2Sve_obH3rKm6rKrtSQpf-eB7U.woff) format('woff'),
            url(https://yastatic.net/adv-www/_/PzD8hWLMunow5i3RfJ6WQJAL7aI.ttf) format('truetype'),
            url(https://yastatic.net/adv-www/_/lF_KG5g4tpQNlYIgA0e77fBSZ5s.svg#YandexSansDisplayWeb-Regular) format('svg');
    font-weight:400;
    font-style:normal;
    font-stretch:normal
}

body {
    background-color: #EEE;

    font-family: Arial, sans-serif;
    font-size: 14px;
}

h1, h2 {
    margin: 3px;
    font-family: 'Yandex Sans Display Web', Arial, sans-serif;
}

p {
    line-height: 20px;
    white-space: pre-wrap;
}

a {
    text-decoration: none;
    color: #06F;
}

a:hover {
    text-decoration: underline;
    color: #F40;
}

.island {
    background-color: #FFF;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05), 0 8px 25px -5px rgba(0, 0, 0, 0.1);
/*    border-radius: 5px;*/
    padding: 10px;
    width: 90%;
    margin: 10px auto 10px auto;
}

.title {
    font-size: 40px;
    font-weight: normal;
    text-align: center;
    margin: 0;
}

.subtitle {
    font-size: 50px;
    font-weight: normal;
    text-align: center;
    margin: 0;
}

.signature {
    text-align: right;
    margin: 0;
}

.terminal {
    font-family: Monospace;
    font-size: 9pt;
    color: #B2B2B2;
    background-color: #000;
    padding: 3px;
    border: 1px solid #AAA;
    white-space: pre-wrap;
}

.text-example {
    font-family: Monospace;
    font-size: 9pt;
    background-color: #FEC;
    padding: 3px;
    border: 1px solid #DDD;
    white-space: pre-wrap;
}

.inline-example {
    font-family: Monospace;
    font-size: 9pt;
    background-color: #FEC;
}

.informer {
    width: 1000px;
    margin: 20px auto 10px auto;
    text-align: right;
}

.show-example {
    display: none;
}

.show-hide-link {
    color: #06C;
    border-bottom: 1px dotted #06C;
}

.show-hide-link:hover {
    color: #F40;
    border-bottom: 1px dotted #F40;
    cursor: pointer;
}

.head-anchor {
    float: right;
    color: #AAA;
}

.head-anchor:hover {
    text-decoration: none;
}

.comparison_table {
    background-color: #EEE;
}

td {
    padding: 2px 5px 1px 5px;
}

th {
    padding: 5px 5px 5px 5px;
}

.query_cell {
    width: 300px;
    white-space: pre;
    overflow-x: hidden;
}

.query_cell:hover {
    width: auto;
    background-color: #FEC;
    position: absolute;
    padding: 3px;
    margin: -11px 0 0 -3px;
    overflow-x: auto;
    white-space: normal;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1), 0 8px 25px -5px rgba(0, 0, 0, 0.25);
}

.number_cell {
    text-align: right;
}

.comparison_table td {
    background-color: #FFF;
}

.comparison_table th {
    background-color: #F8F8F8;
}

#selectors {
    font-size: 20px;
    font-family: 'Yandex Sans Display Web', Arial, sans-serif;
    margin: 5px;
}

#selectors p span {
    border: 1px solid #DDD;
    background-color: #EEE;
    padding: 1px 5px 1px 5px;
    cursor: pointer;
}

#selectors p span.selected {
    border: 1px solid #F60;
    background-color: #F80;
}

#selectors p span.disabled {
    color: #AAA;
    cursor: default;
}

.bar {
    background-color: #6AF;
    margin-top: 1px;
}

#diagram table tr td {
    border-left: 1px solid #EEE;
    border-top: 1px solid #EEE;
    background-color: #F8F8F8;
}

#diagram table tr td:last-child {
    border-right: 1px solid #EEE;
}

#diagram table tr:last-child td {
    border-bottom: 1px solid #EEE;
}


</style>

    </head>
    <body>

<script type="text/javascript">
function getParams() {
    var matches = document.cookie.match(/yandex_login=([\w\-]+)/);
    return (matches && matches.length == 2) ? { "login": matches[1] } : {};
}
</script>

<!-- Yandex.Metrika counter -->
<script type="text/javascript">
    (function (d, w, c) {
        (w[c] = w[c] || []).push(function() {
            try {
                w.yaCounter18343495 = new Ya.Metrika2({
                    id:18343495,
                    clickmap:true,
                    trackLinks:true,
                    accurateTrackBounce:true,
                    webvisor:true
                });
            } catch(e) { }
        });

        var n = d.getElementsByTagName("script")[0],
            s = d.createElement("script"),
            f = function () { n.parentNode.insertBefore(s, n); };
        s.type = "text/javascript";
        s.async = true;
        s.src = "https://mc.yandex.ru/metrika/tag.js";

        if (w.opera == "[object Opera]") {
            d.addEventListener("DOMContentLoaded", f, false);
        } else { f(); }
    })(document, window, "yandex_metrika_callbacks2");
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/18343495" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->

<script type="text/javascript">

var queries =
[
    {
        "query": "SELECT count() FROM hits",
        "comment": "",
    },
    {
        "query": "SELECT count() FROM hits WHERE AdvEngineID != 0",
        "comment": "",
    },
    {
        "query": "SELECT sum(AdvEngineID), count(), avg(ResolutionWidth) FROM hits",
        "comment": "",
    },
    {
        "query": "SELECT sum(UserID) FROM hits",
        "comment": "",
    },
    {
        "query": "SELECT uniq(UserID) FROM hits",
        "comment": "",
    },
    {
        "query": "SELECT uniq(SearchPhrase) FROM hits",
        "comment": "",
    },
    {
        "query": "SELECT min(EventDate), max(EventDate) FROM hits",
        "comment": "",
    },
    {
        "query": "SELECT AdvEngineID, count() FROM hits WHERE AdvEngineID != 0 GROUP BY AdvEngineID ORDER BY count() DESC",
        "comment": "",
    },
    {
        "query": "SELECT RegionID, uniq(UserID) AS u FROM hits GROUP BY RegionID ORDER BY u DESC LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT RegionID, sum(AdvEngineID), count() AS c, avg(ResolutionWidth), uniq(UserID) FROM hits GROUP BY RegionID ORDER BY c DESC LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT MobilePhoneModel, uniq(UserID) AS u FROM hits WHERE MobilePhoneModel != '' GROUP BY MobilePhoneModel ORDER BY u DESC LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT MobilePhone, MobilePhoneModel, uniq(UserID) AS u FROM hits WHERE MobilePhoneModel != '' GROUP BY MobilePhone, MobilePhoneModel ORDER BY u DESC LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT SearchPhrase, count() AS c FROM hits WHERE SearchPhrase != '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT SearchPhrase, uniq(UserID) AS u FROM hits WHERE SearchPhrase != '' GROUP BY SearchPhrase ORDER BY u DESC LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT SearchEngineID, SearchPhrase, count() AS c FROM hits WHERE SearchPhrase != '' GROUP BY SearchEngineID, SearchPhrase ORDER BY c DESC LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT UserID, count() FROM hits GROUP BY UserID ORDER BY count() DESC LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT UserID, SearchPhrase, count() FROM hits GROUP BY UserID, SearchPhrase ORDER BY count() DESC LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT UserID, SearchPhrase, count() FROM hits GROUP BY UserID, SearchPhrase LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT UserID, toMinute(EventTime) AS m, SearchPhrase, count() FROM hits GROUP BY UserID, m, SearchPhrase ORDER BY count() DESC LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT UserID FROM hits WHERE UserID = 12345678901234567890",
        "comment": "",
    },
    {
        "query": "SELECT count() FROM hits WHERE URL LIKE '%metrika%'",
        "comment": "",
    },
    {
        "query": "SELECT SearchPhrase, any(URL), count() AS c FROM hits WHERE URL LIKE '%metrika%' AND SearchPhrase != '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT SearchPhrase, any(URL), any(Title), count() AS c, uniq(UserID) FROM hits WHERE Title LIKE '%Яндекс%' AND URL NOT LIKE '%.yandex.%' AND SearchPhrase != '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT * FROM hits WHERE URL LIKE '%metrika%' ORDER BY EventTime LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT SearchPhrase FROM hits WHERE SearchPhrase != '' ORDER BY EventTime LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT SearchPhrase FROM hits WHERE SearchPhrase != '' ORDER BY SearchPhrase LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT SearchPhrase FROM hits WHERE SearchPhrase != '' ORDER BY EventTime, SearchPhrase LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT CounterID, avg(length(URL)) AS l, count() AS c FROM hits WHERE URL != '' GROUP BY CounterID HAVING c > 100000 ORDER BY l DESC LIMIT 25",
        "comment": "",
    },
    {
        "query": "SELECT domainWithoutWWW(Referer) AS key, avg(length(Referer)) AS l, count() AS c, any(Referer) FROM hits WHERE Referer != '' GROUP BY key HAVING c > 100000 ORDER BY l DESC LIMIT 25",
        "comment": "",
    },
    {
        "query": "SELECT sum(ResolutionWidth), sum(ResolutionWidth + 1), sum(ResolutionWidth + 2), sum(ResolutionWidth + 3), sum(ResolutionWidth + 4), sum(ResolutionWidth + 5), sum(ResolutionWidth + 6), sum(ResolutionWidth + 7), sum(ResolutionWidth + 8), sum(ResolutionWidth + 9), sum(ResolutionWidth + 10), sum(ResolutionWidth + 11), sum(ResolutionWidth + 12), sum(ResolutionWidth + 13), sum(ResolutionWidth + 14), sum(ResolutionWidth + 15), sum(ResolutionWidth + 16), sum(ResolutionWidth + 17), sum(ResolutionWidth + 18), sum(ResolutionWidth + 19), sum(ResolutionWidth + 20), sum(ResolutionWidth + 21), sum(ResolutionWidth + 22), sum(ResolutionWidth + 23), sum(ResolutionWidth + 24), sum(ResolutionWidth + 25), sum(ResolutionWidth + 26), sum(ResolutionWidth + 27), sum(ResolutionWidth + 28), sum(ResolutionWidth + 29), sum(ResolutionWidth + 30), sum(ResolutionWidth + 31), sum(ResolutionWidth + 32), sum(ResolutionWidth + 33), sum(ResolutionWidth + 34), sum(ResolutionWidth + 35), sum(ResolutionWidth + 36), sum(ResolutionWidth + 37), sum(ResolutionWidth + 38), sum(ResolutionWidth + 39), sum(ResolutionWidth + 40), sum(ResolutionWidth + 41), sum(ResolutionWidth + 42), sum(ResolutionWidth + 43), sum(ResolutionWidth + 44), sum(ResolutionWidth + 45), sum(ResolutionWidth + 46), sum(ResolutionWidth + 47), sum(ResolutionWidth + 48), sum(ResolutionWidth + 49), sum(ResolutionWidth + 50), sum(ResolutionWidth + 51), sum(ResolutionWidth + 52), sum(ResolutionWidth + 53), sum(ResolutionWidth + 54), sum(ResolutionWidth + 55), sum(ResolutionWidth + 56), sum(ResolutionWidth + 57), sum(ResolutionWidth + 58), sum(ResolutionWidth + 59), sum(ResolutionWidth + 60), sum(ResolutionWidth + 61), sum(ResolutionWidth + 62), sum(ResolutionWidth + 63), sum(ResolutionWidth + 64), sum(ResolutionWidth + 65), sum(ResolutionWidth + 66), sum(ResolutionWidth + 67), sum(ResolutionWidth + 68), sum(ResolutionWidth + 69), sum(ResolutionWidth + 70), sum(ResolutionWidth + 71), sum(ResolutionWidth + 72), sum(ResolutionWidth + 73), sum(ResolutionWidth + 74), sum(ResolutionWidth + 75), sum(ResolutionWidth + 76), sum(ResolutionWidth + 77), sum(ResolutionWidth + 78), sum(ResolutionWidth + 79), sum(ResolutionWidth + 80), sum(ResolutionWidth + 81), sum(ResolutionWidth + 82), sum(ResolutionWidth + 83), sum(ResolutionWidth + 84), sum(ResolutionWidth + 85), sum(ResolutionWidth + 86), sum(ResolutionWidth + 87), sum(ResolutionWidth + 88), sum(ResolutionWidth + 89) FROM hits",
        "comment": "",
    },
    {
        "query": "SELECT SearchEngineID, ClientIP, count() AS c, sum(Refresh), avg(ResolutionWidth) FROM hits WHERE SearchPhrase != '' GROUP BY SearchEngineID, ClientIP ORDER BY c DESC LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT WatchID, ClientIP, count() AS c, sum(Refresh), avg(ResolutionWidth) FROM hits WHERE SearchPhrase != '' GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT WatchID, ClientIP, count() AS c, sum(Refresh), avg(ResolutionWidth) FROM hits GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT URL, count() AS c FROM hits GROUP BY URL ORDER BY c DESC LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT 1, URL, count() AS c FROM hits GROUP BY 1, URL ORDER BY c DESC LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT ClientIP AS x, x - 1, x - 2, x - 3, count() AS c FROM hits GROUP BY x, x - 1, x - 2, x - 3 ORDER BY c DESC LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT    URL,    count() AS PageViews FROM hits WHERE    CounterID = 34    AND EventDate >= toDate('2013-07-01')    AND EventDate <= toDate('2013-07-31')    AND NOT DontCountHits    AND NOT Refresh    AND notEmpty(URL) GROUP BY URL ORDER BY PageViews DESC LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT    Title,    count() AS PageViews FROM hits WHERE    CounterID = 34    AND EventDate >= toDate('2013-07-01')    AND EventDate <= toDate('2013-07-31')    AND NOT DontCountHits    AND NOT Refresh    AND notEmpty(Title) GROUP BY Title ORDER BY PageViews DESC LIMIT 10",
        "comment": "",
    },
    {
        "query": "SELECT    URL,    count() AS PageViews FROM hits WHERE    CounterID = 34    AND EventDate >= toDate('2013-07-01')    AND EventDate <= toDate('2013-07-31')    AND NOT Refresh    AND IsLink    AND NOT IsDownload GROUP BY URL ORDER BY PageViews DESC LIMIT 1000",
        "comment": "",
    },
    {
        "query": "SELECT    TraficSourceID,    SearchEngineID,    AdvEngineID,    ((SearchEngineID = 0 AND AdvEngineID = 0) ? Referer : '') AS Src,    URL AS Dst,    count() AS PageViews FROM hits WHERE    CounterID = 34    AND EventDate >= toDate('2013-07-01')    AND EventDate <= toDate('2013-07-31')    AND NOT Refresh GROUP BY    TraficSourceID,    SearchEngineID,    AdvEngineID,    Src,    Dst ORDER BY PageViews DESC LIMIT 1000",
        "comment": "",
    },
    {
        "query": "SELECT    URLHash,    EventDate,    count() AS PageViews FROM hits WHERE    CounterID = 34    AND EventDate >= toDate('2013-07-01')    AND EventDate <= toDate('2013-07-31')    AND NOT Refresh    AND TraficSourceID IN (-1, 6)    AND RefererHash = halfMD5('http://yandex.ru/') GROUP BY    URLHash,    EventDate ORDER BY PageViews DESC LIMIT 100",
        "comment": "",
    },
    {
        "query": "SELECT    WindowClientWidth,    WindowClientHeight,    count() AS PageViews FROM hits WHERE    CounterID = 34    AND EventDate >= toDate('2013-07-01')    AND EventDate <= toDate('2013-07-31')    AND NOT Refresh    AND NOT DontCountHits    AND URLHash = halfMD5('http://yandex.ru/') GROUP BY    WindowClientWidth,    WindowClientHeight ORDER BY PageViews DESC LIMIT 10000;",
        "comment": "",
    },
    {
        "query": "SELECT    toStartOfMinute(EventTime) AS Minute,    count() AS PageViews FROM hits WHERE    CounterID = 34    AND EventDate >= toDate('2013-07-01')    AND EventDate <= toDate('2013-07-02')    AND NOT Refresh    AND NOT DontCountHits GROUP BY    Minute ORDER BY Minute;",
        "comment": "",
    }
]

var results =
[
    {
        "system":       "ClickHouse",
        "version":      "19.1.6",
        "data_size":    10000000,
        "time":         "2016-06-01 03:00:00",
        "comments":     "FORMAT Null",
        "result":
        [
[0.092, 0.012, 0.006],
[0.087, 0.006, 0.006],
[0.098, 0.010, 0.011],
[0.134, 0.016, 0.010],
[0.176, 0.037, 0.040],
[0.233, 0.057, 0.058],
[0.066, 0.006, 0.007],
[0.071, 0.006, 0.014],
[0.259, 0.131, 0.128],
[0.266, 0.094, 0.078],
[0.217, 0.033, 0.032],
[0.211, 0.040, 0.034],
[0.249, 0.102, 0.102],
[0.343, 0.122, 0.107],
[0.302, 0.116, 0.122],
[0.209, 0.090, 0.083],
[0.415, 0.222, 0.221],
[0.287, 0.112, 0.115],
[0.562, 0.323, 0.351],
[0.127, 0.009, 0.009],
[0.410, 0.068, 0.073],
[0.494, 0.108, 0.083],
[0.911, 0.197, 0.193],
[2.426, 0.303, 0.286],
[0.311, 0.041, 0.046],
[0.203, 0.037, 0.040],
[0.262, 0.042, 0.052],
[0.365, 0.067, 0.066],
[0.735, 0.158, 0.177],
[0.549, 0.344, 0.521],
[0.357, 0.098, 0.103],
[0.509, 0.136, 0.130],
[0.775, 0.531, 0.532],
[0.641, 0.342, 0.320],
[0.600, 0.351, 0.352],
[0.295, 0.122, 0.134],
[0.291, 0.118, 0.122],
[0.203, 0.053, 0.057],
[0.234, 0.041, 0.037],
[0.502, 0.223, 0.234],
[0.275, 0.016, 0.018],
[0.222, 0.014, 0.017],
[0.182, 0.016, 0.014]
        ]
    },

    {
        "system":       "ClickHouse",
        "version":      "19.1.6",
        "data_size":    100000000,
        "time":         "2016-06-01 03:00:00",
        "comments":     "FORMAT Null",
        "result":
        [
[0.133, 0.016, 0.016],
[0.086, 0.012, 0.037],
[0.254, 0.041, 0.037],
[0.478, 0.047, 0.045],
[0.655, 0.104, 0.105],
[0.581, 0.228, 0.297],
[0.105, 0.048, 0.022],
[0.076, 0.012, 0.015],
[0.892, 0.509, 0.487],
[1.077, 0.542, 0.589],
[0.529, 0.171, 0.167],
[0.541, 0.188, 0.182],
[0.975, 0.659, 0.603],
[1.479, 0.812, 0.770],
[1.082, 0.734, 0.778],
[0.952, 0.728, 0.729],
[2.212, 1.756, 1.952],
[1.230, 1.033, 0.907],
[4.613, 4.030, 3.955],
[0.477, 0.074, 0.037],
[1.648, 0.532, 0.555],
[2.002, 0.645, 0.651],
[3.676, 1.479, 1.487],
[7.792, 0.759, 0.788],
[1.139, 0.239, 0.215],
[0.522, 0.220, 0.215],
[1.018, 0.230, 0.238],
[1.768, 0.602, 0.603],
[1.818, 0.899, 0.916],
[3.301, 3.174, 3.283],
[1.313, 0.639, 0.631],
[2.136, 0.938, 0.975],
[5.894, 5.412, 5.467],
[3.359, 3.053, 3.061],
[3.355, 2.999, 3.004],
[1.224, 1.103, 1.063],
[0.185, 0.086, 0.092],
[0.138, 0.038, 0.038],
[0.155, 0.031, 0.031],
[0.390, 0.183, 0.162],
[0.203, 0.013, 0.013],
[0.178, 0.011, 0.011],
[0.128, 0.007, 0.007]
        ]
    },

    {
        "system":       "ClickHouse",
        "version":      "19.1.6",
        "data_size":    1000000000,
        "time":         "2016-06-01 03:00:00",
        "comments":     "FORMAT Null",
        "result":
        [
[0.747, 0.090, 0.075],
[0.197, 0.074, 0.061],
[1.370, 0.419, 0.334],
[3.911, 0.390, 0.365],
[4.096, 0.636, 0.638],
[4.739, 1.626, 1.542],
[0.270, 0.172, 0.188],
[0.184, 0.067, 0.061],
[6.182, 3.016, 2.913],
[7.068, 3.329, 3.409],
[4.332, 1.128, 1.296],
[4.698, 1.351, 1.328],
[7.721, 5.721, 5.802],
[11.683, 7.687, 7.629],
[9.144, 6.987, 6.974],
[8.069, 6.115, 6.386],
[22.657, 20.622, 20.842],
[11.727, 10.574, 10.708],
[52.193, 51.836, 53.738],
[4.179, 0.378, 0.279],
[24.400, 4.712, 4.591],
[29.045, 5.533, 5.502],
[56.733, 13.958, 13.791],
[86.314, 8.349, 7.448],
[11.360, 1.762, 1.781],
[4.890, 1.568, 1.508],
[11.667, 1.962, 1.889],
[24.491, 5.554, 5.556],
[28.096, 8.528, 8.481],
[24.084, 25.500, 26.527],
[10.820, 5.387, 5.406],
[25.187, 8.879, 8.852],
[70.218, 67.707, 68.059],
[42.018, 36.039, 36.391],
[43.128, 35.813, 36.154],
[9.646, 8.490, 8.418],
[0.639, 0.250, 0.289],
[0.350, 0.064, 0.066],
[0.443, 0.106, 0.100],
[0.923, 0.461, 0.460],
[0.479, 0.030, 0.029],
[0.372, 0.025, 0.023],
[0.224, 0.012, 0.013]
        ]
    },

    {
        "system":       "Vertica",
        "version":      "7.1.1",
        "data_size":    10000000,
        "time":         "",
        "comments":     "",
        "result":
        [
[0.015899, 0.012807, 0.012184],
[0.035133, 0.021397, 0.018946],
[0.060938, 0.034013, 0.037085],
[0.051492, 0.021746, 0.022661],
[0.150695, 0.144041, 0.143313],
[0.412724, 0.276505, 0.27558],
[0.039736, 0.021215, 0.025029],
[0.049819, 0.045784, 0.049303],
[0.248834, 0.222963, 0.217386],
[0.43366, 0.437333, 0.4883],
[0.106483, 0.094236, 0.092362],
[0.122424, 0.10004, 0.100646],
[0.952346, 0.963712, 0.994094],
[0.64299, 0.647605, 0.644699],
[0.606994, 0.552117, 0.563657],
[0.221643, 0.205149, 0.216158],
[0.789877, 0.848421, 0.869198],
[0.439601, 0.438257, 0.424207],
[1.51968, 1.351311, 1.495538],
[0.038791, 0.03504, 0.050796],
[0.847444, 0.412624, 0.413898],
[0.491446, 0.474577, 0.484147],
[1.693912, 1.166251, 1.236441],
[1.905181, 1.257361, 1.437238],
[0.36171, 0.263338, 0.28958],
[0.46795, 0.515716, 0.443451],
[0.28467, 0.248823, 0.251787],
[2.326452, 2.152684, 2.073438],
[2.953462, 2.324174, 2.845123],
[0.631466, 0.822281, 0.873889],
[0.446697, 0.320824, 0.304922],
[0.489312, 0.417575, 0.440902],
[2.178985, 2.094694, 2.164159],
[1.375479, 1.331646, 1.360907],
[1.347677, 1.354772, 1.344533],
[0.429637, 0.43564, 0.436279],
[3.297413, 3.177341, 3.194704],
[0.835327, 0.743157, 0.746247],
[0.248143, 0.20795, 0.218004],
[1.495476, 1.322633, 1.374602],
[0.187092, 0.12099, 0.127517],
[0.148605, 0.109589, 0.107272],
[0.148173, 0.12809, 0.133435]
        ]
    },

    {
        "system":       "Vertica",
        "version":      "7.1.1",
        "data_size":    100000000,
        "time":         "",
        "comments":     "",
        "result":
        [
[0.044914, 0.033471, 0.029564],
[0.124784, 0.044458, 0.04813],
[0.253575, 0.167392, 0.166981],
[0.267045, 0.060595, 0.059291],
[0.901021, 0.881088, 1.032132],
[1.284296, 0.991411, 1.011576],
[0.149862, 0.068061, 0.067217],
[0.148711, 0.083089, 0.078208],
[1.847624, 1.836724, 1.892968],
[4.278373, 4.313527, 4.564084],
[0.358281, 0.266623, 0.288294],
[0.42072, 0.38109, 0.371086],
[5.294134, 4.280055, 4.179055],
[8.849077, 8.744801, 8.750143],
[4.469753, 4.203493, 4.319043],
[1.542069, 1.506466, 1.605814],
[8.230461, 8.129543, 8.521089],
[5.063301, 5.177715, 4.989504],
[21.097494, 21.113905, 20.863796],
[0.238975, 0.163524, 0.162261],
[3.681673, 3.664944, 3.738555],
[3.996372, 3.875857, 3.897112],
[5.086255, 5.00034, 5.019747],
[5.105649, 4.51027, 4.780023],
[6.028593, 6.027804, 5.998026],
[4.324348, 4.357931, 4.451637],
[6.011405, 6.01204, 6.006612],
[13.744667, 14.174568, 14.053413],
[9.533647, 9.626582, 9.551671],
[2.652615, 2.689042, 2.617271],
[1.881931, 1.808578, 1.80198],
[3.926782, 3.813766, 3.806481],
[19.214651, 19.52602, 19.544008],
[27.55101, 27.641466, 28.128856],
[27.687275, 27.525594, 27.338331],
[4.989802, 5.243158, 4.861738],
[2.471475, 2.239634, 2.270449],
[0.814507, 0.733751, 0.760994],
[0.280513, 0.230994, 0.231817],
[1.479762, 1.293106, 1.277735],
[0.163974, 0.12314, 0.127756],
[0.148318, 0.112932, 0.107095],
[0.069868, 0.071664, 0.065618]
        ]
    },

    {
        "system":       "Vertica",
        "version":      "7.1.1",
        "data_size":    1000000000,
        "time":         "",
        "comments":     "",
        "result":
        [
[0.09516, 0.094485, 0.092024],
[0.816135, 0.446083, 0.453634],
[2.11051, 1.773246, 1.791243],
[2.120462, 1.033154, 1.020443],
[8.149946, 7.740829, 7.659704],
[26.119083, 25.611287, 25.675649],
[1.035186, 0.818121, 0.822225],
[0.816869, 0.506568, 0.51574],
[13.108386, 13.20647, 13.556902],
[40.935852, 39.508237, 39.034314],
[3.183196, 2.862235, 2.86959],
[3.967054, 3.658079, 3.557328],
[30.73868, 30.722098, 31.301074],
[76.889072, 76.027064, 77.056729],
[32.033544, 31.866097, 32.772241],
[11.350141, 11.177469, 11.064054],
[74.059265, 73.061888, 73.041769],
[52.895306, 52.588376, 52.671085],
[186.891072, 184.998125, 185.913578],
[2.208113, 1.871682, 1.87381],
[21.705589, 21.595201, 21.415026],
[21.080841, 20.856408, 20.696303],
[45.916174, 45.351723, 45.433121],
[47.051243, 35.723046, 35.694351],
[53.209629, 53.406901, 53.069656],
[52.737858, 52.784361, 52.617806],
[53.430247, 53.206678, 53.309617],
[372.194119, 371.545597, 370.507236],
[76.594315, 76.464039, 76.319749],
[24.274602, 24.263616, 24.198579],
[14.400851, 13.927733, 13.747829],
[30.679117, 28.09498, 27.203538],
[210.606242, 214.108745, 214.521569],
[289.044749, 291.983512, 289.419234],
[289.46641, 290.132895, 289.4922],
[43.7288, 43.325352, 43.19419],
[5.028182, 4.798986, 4.728277],
[1.145844, 1.035948, 1.017571],
[0.398542, 0.3224, 0.324956],
[5.497337, 5.271507, 5.329618],
[0.210421, 0.162334, 0.161671],
[0.201661, 0.140586, 0.135319],
[0.178466, 0.162246, 0.159834]
        ]
    },

    {
        "system":       "Vertica (x3)",
        "version":      "7.0.0-0",
        "data_size":    1000000000,
        "time":         "",
        "comments":     "",
        "result":
        [
[3.328, 0.397, 0.382],
[2.889, 0.24, 0.219],
[5.667, 0.781, 0.79],
[5.163, 0.58, 0.545],
[10.743, 7.414, 7.554],
[44.021, 43.629, 42.651],
[3.045, 0.416, 0.419],
[2.987, 0.366, 0.387],
[16.039, 13.626, 13.646],
[23.93, 21.818, 21.376],
[7.084, 2.683, 2.763],
[9.39, 3.176, 3.085],
[41.674, 42.039, 42.239],
[138.331, 136.452, 137.238],
[68.416, 67.551, 67.478],
[12.463, 10.125, 9.974],
[188.023, 186.817, 186.116],
[172.149, 170.75, 171.178],
[489.181, 488.154, 489.749],
[5.466, 0.916, 0.891],
[24.91, 18.009, 17.985],
[25.49, 18.525, 18.803],
[39.856, 17.993, 18.436],
[128.041, 9.876, 9.599],
[31.162, 30.831, 30.708],
[33.871, 32.901, 33.198],
[31.26, 30.795, 30.982],
[97.13, 93.233, 93.352],
[123.941, 123.625, 123.509],
[10.032, 9.418, 9.431],
[19.05, 9.184, 8.907],
[22.433, 19.726, 19.764],
[171.142, 162.149, 162.224],
[286.116, 283.672, 282.848],
[281.98, 278.234, 280.236],
[30.897, 30.486, 30.338],
[11.785, 11.42, 11.262],
[2.188, 1.739, 1.782],
[1.754, 1.582, 1.852],
[25.553, 24.89, 24.753],
[0.853, 0.324, 0.304],
[0.656, 0.368, 0.332],
[0.436, 0.356, 0.31]
        ]
    },

    {
        "system":       "Vertica (x6)",
        "version":      "7.0.0-0",
        "data_size":    1000000000,
        "time":         "",
        "comments":     "",
        "result":
        [
[2.203, 0.392, 0.421],
[2.201, 0.336, 0.36],
[3.669, 0.704, 0.624],
[3.512, 0.516, 0.501],
[7.482, 5.696, 5.812],
[43.298, 48.75, 42.419],
[2.285, 0.411, 0.396],
[2.111, 0.454, 0.447],
[12.751, 10.454, 10.447],
[16.751, 15.247, 16.011],
[4.789, 2.06, 2.023],
[6.015, 2.207, 2.273],
[42.854, 41.299, 42.517],
[50.338, 48.5, 48.569],
[27.033, 25.38, 25.336],
[8.766, 6.73, 6.584],
[63.644, 64.514, 63.864],
[56.751, 56.018, 56.263],
[151.68, 149.595, 150.832],
[3.249, 0.701, 0.639],
[25.006, 18.019, 17.994],
[27.427, 18.74, 18.759],
[23.331, 9.915, 10.314],
[92.277, 6.708, 6.496],
[16.708, 15.827, 16.021],
[18.68, 18.99, 18.492],
[16.39, 16, 16.023],
[50.455, 48.204, 49.54],
[64.871, 64.565, 63.996],
[5.638, 5.103, 5.086],
[14.41, 6.785, 6.714],
[22.602, 14.089, 13.952],
[106.629, 105.692, 103.34],
[301.935, 293.388, 295.326],
[299.916, 290.717, 297.424],
[21.476, 21.447, 21.519],
[7.853, 7.158, 7.353],
[2.087, 1.573, 1.543],
[2.536, 1.788, 1.912],
[11.355, 10.46, 9.62],
[1.008, 0.401, 0.434],
[1.358, 0.373, 0.422],
[0.841, 0.438, 0.442]
        ]
    },

    {
        "system":       "InfiniDB",
        "version":      "Enterprise 3.6.23",
        "data_size":    10000000,
        "time":         "",
        "comments":     "",
        "result":
        [
            [1.15, 0.17, 0.16],
            [0.31, 0.17, 0.16],
            [0.47, 0.31, 0.30],
            [null, null, null],
            [0.97, 0.87, 0.92],
            [6.14, 6.56, 5.43],
            [0.35, 0.25, 0.26],
            [0.22, 0.17, 0.16],
            [1.19, 0.94, 1.02],
            [1.34, 1.37, 1.33],
            [0.51, 0.39, 0.39],
            [0.45, 0.40, 0.38],
            [8.06, 8.02, 8.02],
            [8.43, 8.83, 8.89],
            [8.21, 8.31, 8.42],
            [1.73, 1.76, 1.78],
            [18.95, 17.76, 19.98],
            [12.59, 13.64, 12.24],
            [37.04, 35.00, 36.76],
            [0.25, 0.14, 0.13],
            [2.28, 0.81, 0.86],
            [0.61, 0.63, 0.57],
            [3.02, 1.15, 1.17],
            [12.44, 1.19, 1.19],
            [8.92, 8.83, 9.07],
            [8.15, 8.11, 8.11],
            [10.39, 10.18, 10.33],
            [5.70, 5.70, 5.82],
            [13.77, 15.06, 13.88],
            [8.57, 9.29, 8.58],
            [2.03, 2.02, 2.00],
            [3.18, 3.31, 3.26],
            [20.23, 19.45, 20.16],
            [183.55, 156.42, 124.94],
            [160.14, 164.08, 162.15],
            [3.49, 1.67, 1.71],
            [23.03, 21.05, 21.21],
            [3.14, 1.70, 1.65],
            [1.64, 1.27, 1.23],
            [82.86, 72.81, 77.55],
            [0.32, 0.18, 0.18],
            [0.28, 0.18, 0.19],
            [3.43, 1.61, 1.53]
        ]
    },

    {
        "system":       "InfiniDB",
        "version":      "Enterprise 3.6.23",
        "data_size":    100000000,
        "time":         "",
        "comments":     "",
        "result":
        [
            [2.07,0.34,0.35],
            [0.76,0.3,0.31],
            [1.45,1.23,1.24],
            [null, null, null],
            [4.18,3.89,3.85],
            [26.32,28.07,23.96],
            [1.36,1.04,1.03],
            [0.56,0.32,0.3],
            [5.14,4.54,4.51],
            [7.83,8.18,8.0],
            [1.96,1.4,1.45],
            [1.75,1.52,1.46],
            [23.72,23.01,23.87],
            [30.74,30.86,28.36],
            [25.55,24.76,24.41],
            [11.66,11.59,11.67],
            [80.45,85.49,116.21],
            [52.27,50.76,48.3],
            [null, null, null],
            [4.31,0.24,0.16],
            [130.37,7.24,7.78],
            [66.62,10.19,10.2],
            [32.34,19.66,19.59],
            [288.38,58.86,7.35],
            [57.88,57.95,57.82],
            [47.32,52.59,47.03],
            [73.32,65.1,73.43],
            [50.6,51.5,50.93],
            [89.16,85.75,87.26],
            [61.97,60.49,62.13],
            [10.3,10.4,10.31],
            [21.11,20.86,20.99],
            [157.67,151.81,153.5],
            [null, null, null],
            [null, null, null],
            [11.86,11.08,11.13],
            [12.35,12.49,12.36],
            [3.11,3.12,3.14],
            [1.03,0.89,0.9],
            [34.01,45.75,50.3],
            [0.21,0.23,0.24],
            [0.23,0.21,0.23],
            [0.14,0.15,0.17]
        ]
    },

    {
        "system":       "MonetDB",
        "version":      "",
        "data_size":    10000000,
        "time":         "",
        "comments":     "",
        "result":
        [
            [0.003851, 0.003389, 0.003633],
            [0.400058, 0.045117, 0.007999],
            [0.207544, 0.022219, 0.033007],
            [null, null, null],
            [0.873236, 0.61427, 0.564001],
            [3.1, 2.8, 2.9],
            [0.191616, 0.004704, 0.008579],
            [0.056658, 0.049444, 0.035463],
            [5.8, 5.8, 6.4],
            [5.8, 8.4, 8.5],
            [0.458164, 0.319166, 0.413914],
            [0.344021, 0.314183, 0.348057],
            [6.1, 13.3, 6.1],
            [5.8, 5.6, 5.5],
            [54.9, 70.0, 58.4],
            [0.886465, 0.711899, 0.7329],
            [5.8, 5.9, 5.9],
            [5.8, 5.9, 6.0],
            [20.2, 19.7, 21.0],
            [0.331309, 0.000618, 0.085817],
            [2.0, 0.056549, 0.09292],
            [0.053756, 0.050622, 0.054916],
            [2.2, 0.069379, 0.066628],
            [13.0, 0.511351, 0.484708],
            [0.137787, 0.030937, 0.030501],
            [0.039574, 0.027741, 0.025684],
            [0.046094, 0.043038, 0.039139],
            [4.1, 2.7, 2.7],
            [null, null, null],
            [1.1, 0.940847, 0.921118],
            [17.7, 18.2, 17.5],
            [2.0, 0.236466, 0.236223],
            [1.3, 1.3, 1.3],
            [138.0, 140.0, 173.0],
            [null, null, null],
            [null, null, null],
            [169.0, 175.0, null],
            [261.0, 257.0, 268.0],
            [3.1, 0.513628, 0.464017],
            [262.0, 252.0, 257.0],
            [0.524173, 0.066989, 0.123604],
            [0.305343, 0.030736, 0.048725],
            [2.3, 1.9, 1.9]
        ]
    },

    {
        "system":       "MonetDB",
        "version":      "",
        "data_size":    100000000,
        "time":         "",
        "comments":     "",
        "result":
        [
            [0.028886,0.003581,0.003829],
            [2.7,0.139637,0.060264],
            [1.1,0.146556,0.146063],
            [null, null, null],
            [7.5,5.6,5.4],
            [15.5,12.7,11.5],
            [1.0,0.038566,0.036837],
            [0.687604,0.026271,0.030261],
            [195.0,214.0,null],
            [254.0,267.0,265.0],
            [22.9,20.0,20.8],
            [20.4,20.8,23.3],
            [97.0,115.0,null],
            [111.0,84.0,58.8],
            [656.0,null,null],
            [6.8,6.9,6.7],
            [264.0,234.0,208.0],
            [222.0,279.0,null],
            [1173.0,null,null],
            [3.9,0.000787,0.032566],
            [27.4,1.7,2.1],
            [4.0,2.6,2.6],
            [null,null,null],
            [209.0,155,143],
            [10.5,5.7,40.9],
            [4.8,4.7,4.7],
            [85.0,4.7,5.7],
            [52.4,30.3,29.1],
            [null, null, null],
            [null, null, null],
            [12.7,11.2,11.4],
            [392.0,370.0,null],
            [3.2,1.8,1.8],
            [41.9,37.0,40.7],
            [null, null, null],
            [null, null, null],
            [null, null, null],
            [6.4,2.3,2.1],
            [3.6,1.0,1.1],
            [1.5,1.2,1.3],
            [7.2,4.6,4.9],
            [2.8,0.050916,0.04148],
            [3.0,0.045935,0.047277],
            [2.5,0.049119,0.04828]
        ]
    },

    {
        "system":       "Infobright",
        "version":      "CE 4.0.7",
        "data_size":    10000000,
        "time":         "",
        "comments":     "",
        "result":
        [
            [0.00, 0.00, 0.00],
            [0.40, 0.38, 0.39],
            [0.10, 0.00, 0.00],
            [null, null, null],
            [2.83, 1.91, 1.95],
            [9.16, 1.65, 1.70],
            [0.03, 0.00, 0.00],
            [0.46, 0.40, 0.41],
            [4.13, 2.97, 3.43],
            [5.12, 4.46, 4.15],
            [1.98, 1.24, 1.36],
            [1.58, 1.26, 1.27],
            [13.37, 30.81, 29.76],
            [32.59, 30.22, 13.00],
            [12.93, 11.39, 30.46],
            [2.98, 3.05, 2.96],
            [9.90, 20.86, 25.17],
            [10.38, 10.19, 10.28],
            [162.43, 164.35, 169.28],
            [1, 0,22, 0,24],
            [47.80, 4.40, 4.47],
            [4.83, 1.15, 1.14],
            [43.82, 2.14, 2.16],
            [6.14, 4.39, 4.35],
            [0.41, 0.41, 0.41],
            [0.80, 0.80, 0.80],
            [0.41, 0.41, 0.40],
            [10.39, 10.12, 9.88],
            [139.25, 79.33, 78.92],
            [145.8, 146.2, 144.97],
            [3.34, 2.02, 2.06],
            [3.68, 3.05, 3.02],
            [14.76, 14.82, 14.76],
            [77.49, 91.4, 90.9],
            [75.37, 83.55, 63.55],
            [10.80, 10.52, 10.67],
            [23.77, 9.47, 9.30],
            [50.21, 3.37, 3.36],
            [1.26, 0.77, 0.76],
            [98.25, 104.6, 94.29],
            [2.04, 0.47, 0.54],
            [1.36, 0.42, 0.41],
            [4.58, 4.01, 3.98]
        ]
    },

    {
        "system":       "Hive",
        "version":      "0.11, ORC File",
        "data_size":    10000000,
        "time":         "",
        "comments":     "",
        "result":
        [
            [47.388, 44.55, 43.513],
            [25.332, 22.592, 22.629],
            [27.558, 23.861, 24.986],
            [26.148, 23.564, 23.508],
            [35.237, 31.445, 32.552],
            [34.063, 29.607, 29.268],
            [25.999, 22.443, 22.559],
            [38.784, 37.082, 37.652],
            [49.973, 47.282, 46.027],
            [54.759, 50.301, 51.858],
            [42.793, 39.001, 38.998],
            [42.858, 38.928, 40.035],
            [55.967, 53.253, 53.053],
            [58.068, 54.393, 53.189],
            [58.359, 53.181, 54.164],
            [63.096, 58.614, 60.153],
            [73.175, 70.386, 69.204],
            [35.511, 31.512, 31.482],
            [109.132, 107.333, 106.376],
            [17.948, 14.47, 14.154],
            [27.452, 24.527, 24.674],
            [41.792, 40.17, 40.052],
            [45.079, 42.12, 43.438],
            [50.847, 46.004, 45.95],
            [31.007, 26.473, 26.277],
            [30.985, 27.724, 27.357],
            [32.747, 28.329, 27.439],
            [62.932, 57.159, 59.233],
            [63.563, 63.375, 63.307],
            [74.663, 67.206, 68.586],
            [58.017, 52.364, 53.155],
            [62.907, 60.202, 59.653],
            [127.206, 124.701, 123.291],
            [89.931, 87.6, 87.325],
            [98.879, 89.299, 90.377],
            [63.792, 61.127, 61.517],
            [44.325, 39.995, 39.979],
            [43.852, 40.178, 40.131],
            [44.493, 40.17, 40.171],
            [36.108, 36.293, 36.241],
            [43.025, 39.168, 40.042],
            [42.914, 40.129, 39.135],
            [33.91, 34.161, 34.191]
        ]
    },

    {
        "system":       "Hive",
        "version":      "0.11, ORC File",
        "data_size":    100000000,
        "time":         "",
        "comments":     "",
        "result":
        [
            [110.676,105.13,107.358],
            [55.195,36.435,32.201],
            [39.991,35.143,35.085],
            [44.465,34.131,34.032],
            [110.69,105.953,107.343],
            [68.119,64.831,64.269],
            [37.809,33.021,33.13],
            [53.788,51.261,48.653],
            [87.479,85.062,85.039],
            [106.577,102.879,101.705],
            [60.4,53.498,53.516],
            [61.275,53.698,53.577],
            [87.924,82.999,82.867],
            [94.281,86.991,87.084],
            [91.05,87.267,87.731],
            [132.697,132.306,130.91],
            [141.357,147.059,140.75],
            [60.884,57.376,57.367],
            [237.554,234.361,234.271],
            [34.019,21.834,21.08],
            [41.195,36.443,35.979],
            [60.385,54.888,56.541],
            [67.257,58.995,59.828],
            [87.697,88.521,89.324],
            [53.796,50.592,50.118],
            [68.786,63.993,62.886],
            [60.715,56.14,55.303],
            [112.58,107.297,106.493],
            [115.068,110.622,109.541],
            [136.36,133.102,135.896],
            [113.348,100.032,99.905],
            [124.002,117.366,109.524],
            [301.77,324.867,294.034],
            [233.937,272.053,238.167],
            [241.283,228.198,246.999],
            [120.684,118.948,118.18],
            [70.292,55.211,55.076],
            [63.4,52.093,52.895],
            [67.483,53.704,54.814],
            [60.588,52.321,53.356],
            [62.644,51.812,53.23],
            [69.068,53.234,52.853],
            [46.67,46.041,45.95]
        ]
    },

    {
        "system":       "MySQL",
        "version":      "5.5.32, MyISAM",
        "data_size":    10000000,
        "time":         "",
        "comments":     "",
        "result":
        [
            [0.01, 0.01, 0.01],
            [21.55, 18.91, 18.28],
            [22.71, 19.86, 20.53],
            [21.3, 18.93, 19.25],
            [26.77, 25.74, 25.65],
            [29.14, 26.92, 26.53],
            [7.47, 7.38, 7.23],
            [20.56, 18.84, 18.41],
            [27.53, 25.14, 24.45],
            [30.08, 26.07, 26.75],
            [22.93, 19.82, 20.23],
            [21.79, 19.75, 19.64],
            [51.3, 42.27, 46.45],
            [43.75, 42.38, 42.36],
            [43.76, 48.66, 46.8],
            [106.76, 106.53, 105.32],
            [172.51, 181.59, 177.7],
            [189.92, 166.09, 172.03],
            [185.61, 181.38, 206.92],
            [20.3, 19.24, 18.49],
            [21.43, 20.03, 19.99],
            [21.88, 20.06, 20.3],
            [25.51, 20.72, 20.58],
            [24.14, 20.04, 19.29],
            [21.65, 19.11, 19.0],
            [22.44, 20.35, 20.02],
            [21.41, 19.96, 19.91],
            [27.15, 26.28, 25.32],
            [135.45, 134.31, 133.12],
            [107.44, 106.26, 106.16],
            [40.47, 36.67, 37.07],
            [39.2, 36.86, 37.22],
            [134.5, 130.75, 133.55],
            [1057.45, 1075.29, 928.38],
            [867.64, 1023.33, 1063.4],
            [111.01, 109.86, 109.34],
            [1160.03, 23.32, 23.08],
            [1109.2, 14.24, 14.38],
            [1086.92, 7.29, 6.63],
            [31.74, 31.79, null],
            [1074.29, 5.51, 5.43],
            [1069.16, 5.6, 5.3],
            [652.84, 4.84, 4.57]
        ]
    },

    {
        "system":       "MySQL",
        "version":      "5.5.32, MyISAM",
        "data_size":    100000000,
        "time":         "",
        "comments":     "",
        "result":
        [
            [0.01,0.01,0.01],
            [220.39,234.32,305.28],
            [220.45,198.31,198.37],
            [207.6,190.59,188.35],
            [275.96,250.84,246.93],
            [292.17,254.14,251.06],
            [75.51,76.11,74.98],
            [203.94,184.14,180.82],
            [287.28,252.52,249.48],
            [299.44,282.02,271.33],
            [218.71,197.51,195.94],
            [220.1,197.17,199.88],
            [929.45,869.74,739.53],
            [null, null, null],
            [1196.42, null, null],
            [null, null, null],
            [null, null, null],
            [null, null, null],
            [null, null, null],
            [447.72,199.09,185.82],
            [582.73,196.73,195.8],
            [582.54,205.89,199.15],
            [568.75,217.15,209.65],
            [562.72,206.77,203.19],
            [602.47,186.8,186.62],
            [565.26,199.44,199.24],
            [657.78,202.53,196.95],
            [675.84,250.11,248.9],
            [null, null, null],
            [1061.89,1054.6,],
            [993.89,918.67,],
            [604.48,553.33,],
            [null, null, null],
            [null, null, null],
            [null, null, null],
            [null, null, null],
            [null, null, null],
            [873.29, null, null],
            [null, null, null],
            [null, null, null],
            [null, null, null],
            [null, null, null],
            [0.67,0.0,0.0]
        ]
    },

    {
        "system":       "MemSQL",
        "version":      "3.2, column store",
        "data_size":    10000000,
        "time":         "2015-04-05",
        "comments":     "",
        "result":
        [
[0.01, 0.01, 0.01],
[0.29, 0.26, 0.25],
[0.48, 0.45, 0.39],
[0.75, 0.63, 0.62],
[1.03, 0.97, 0.89],
[2.76, 2.65, 2.57],
[0.36, 0.32, 0.32],
[0.29, 0.24, 0.24],
[1.71, 1.51, 1.47],
[1.91, 1.69, 1.67],
[0.83, 0.66, 0.65],
[0.88, 0.70, 0.70],
[2.55, 2.59, 2.32],
[null, null, null],
[4.36, 2.34, 2.39],
[1.23, 1.09, 1.09],
[3.26, 3.18, 2.81],
[2.76, 2.58, 2.58],
[5.23, 4.74, 4.45],
[null, null, null],
[5.12, 4.62, 4.81],
[5.43, 4.91, 4.90],
[7.32, 6.18, 6.14],
[22.61, 17.85, 17.89],
[1.04, 0.77, 0.75],
[0.93, 0.77, 0.90],
[1.04, 0.75, 0.76],
[2.84, 2.41, 2.31],
[18.64, 18.19, 18.38],
[5.78, 5.68, 5.67],
[2.24, 1.90, 1.85],
[2.65, 2.22, 2.22],
[8.82, 8.32, 8.01],
[11.30, 10.93, 11.21],
[11.22, 10.73, 10.72],
[1.60, 1.46, 1.45],
[1.86, 1.75, 1.83],
[1.16, 1.10, 1.11],
[0.54, 0.44, 0.44],
[3.79, 3.59, 3.58],
[null, null, null],
[null, null, null],
[0.37, 0.35, 0.35]
        ]
    },
{
"system":       "Greenplum(x2)",
"version":      "4.3.9.1",
"data_size":    100000000,
"time":         "",
"comments":     "",
"result":
[
[2.11, 1.61, 1.60],
[1.30, 1.30, 1.25],
[2.19, 2.12, 2.10],
[2.48, 2.53, 2.50],
[2.96, 3.05, 3.12],
[4.02, 4.02, 3.98],
[1.99, 1.79, 1.81],
[4.26, 3.77, 3.80],
[7.83, 7.19, 6.67],
[11.48, 11.72, 11.62],
[2.12, 2.06, 2.02],
[2.18, 2.05, 2.03],
[5.23, 5.16, 5.29],
[7.01, 6.84, 6.91],
[5.11, 5.31, 5.25],
[3.47, 3.20, 3.24],
[4.19, 4.18, 4.19],
[3.25, 3.16, 3.25],
[6.72, 6.65, 6.84],
[1.70, 1.57, 1.55],
[3.84, 3.58, 3.46],
[6.80, 5.48, 5.31],
[10.50, 3.71, 3.86],
[31.39, 13.54, 14.30],
[3.00, 1.76, 1.70],
[2.13, 2.01, 2.11],
[2.69, 1.72, 1.67],
[6.26, 5.90, 5.58],
[16.77, 16.00, 15.89],
[45.96, 46.69, 47.78],
[4.61, 4.15, 4.22],
[7.08, 5.49, 5.64],
[28.43, 26.11, 28.32],
[19.05, 19.68, 19.23],
[19.23, 19.01, 20.48],
[7.71, 7.69, 7.61],
[2.50, 1.74, 1.74],
[2.15, 1.60, 1.77],
[2.21, 1.67, 1.97],
[2.88, 1.90, 1.82],
[2.25, 1.81, 1.84],
[3.36, 3.13, 3.18],
[3.16, 3.21, 2.90]
]
},
{
"system":       "Greenplum(x2)",
"version":      "4.3.9.1",
"data_size":    10000000,
"time":         "",
"comments":     "",
"result":
[
[0.37, 0.17, 0.22],
[0.25, 0.13, 0.12],
[0.39, 0.22, 0.23],
[0.47, 0.26, 0.26],
[1.30, 1.49, 1.44],
[1.87, 1.85, 2.06],
[0.32, 0.19, 0.19],
[2.85, 3.32, 3.06],
[2.60, 2.44, 2.57],
[2.79, 2.46, 2.79],
[0.80, 0.57, 0.59],
[0.83, 0.60, 0.61],
[3.47, 3.21, 3.43],
[1.54, 1.33, 1.40],
[3.29, 3.11, 3.45],
[1.35, 1.45, 1.49],
[1.65, 1.54, 1.65],
[0.92, 0.81, 0.86],
[1.67, 1.25, 1.28],
[0.33, 0.19, 0.17],
[0.59, 0.40, 0.41],
[2.07, 2.22, 1.96],
[1.70, 0.95, 0.87],
[6.83, 1.74, 1.80],
[0.46, 0.20, 0.19],
[0.44, 0.28, 0.28],
[0.50, 0.19, 0.20],
[2.06, 2.07, 2.15],
[3.02, 2.94, 2.80],
[5.42, 5.62, 5.37],
[2.10, 1.95, 2.05],
[2.31, 2.16, 2.16],
[3.74, 3.59, 3.67],
[3.89, 3.99, 3.93],
[3.03, 2.89, 3.10],
[3.56, 3.41, 3.19],
[2.12, 1.96, 1.96],
[2.03, 1.87, 1.86],
[2.11, 1.83, 1.76],
[2.53, 2.10, 1.96],
[2.31, 1.68, 1.87],
[3.26, 3.22, 3.27],
[3.19, 3.23, 3.11]
]
},
{
"system":       "Greenplum(x2)",
"version":      "4.3.9.1",
"data_size":    1000000000,
"time":         "",
"comments":     "",
"result":
[
[17.70, 12.63, 12.16],
[9.14, 9.22, 9.15],
[17.13, 17.56, 16.67],
[21.25, 20.67, 21.22],
[17.16, 16.49, 17.86],
[25.70, 25.60, 25.78],
[14.77, 15.00, 14.73],
[11.80, 12.09, 12.05],
[33.57, 33.21, 33.01],
[61.65, 59.21, 60.16],
[13.69, 13.74, 13.77],
[14.48, 14.19, 14.28],
[25.59, 26.22, 26.35],
[30.75, 31.32, 31.37],
[27.70, 28.49, 28.18],
[20.28, 20.50, 20.28],
[27.80, 27.13, 29.00],
[23.66, 14.42, 24.30],
[59.58, 58.06, 58.91],
[12.86, 13.18, 13.26],
[36.04, 32.46, 32.59],
[45.28, 34.80, 34.56],
[97.71, 34.57, 33.62],
[215.97, 121.61, 120.47],
[24.44, 13.65, 13.62],
[17.15, 17.01, 17.12],
[23.84, 13.32, 13.46],
[40.83, 39.39, 38.71],
[155.70, 155.18, 158.97],
[451.18, 448.88, 449.55],
[27.37, 25.11, 25.06],
[56.58, 42.46, 43.33],
[29.77, 29.24, 29.11],
[36.94, 31.05, 29.40],
[104.88, 102.26, 101.88],
[41.06, 41.52, 41.15],
[6.91, 2.29, 2.37],
[5.35, 2.00, 2.02],
[6.49, 1.98, 1.88],
[12.55, 3.30, 3.44],
[6.18, 1.95, 2.06],
[6.12, 3.02, 3.43],
[5.21, 3.66, 3.58]
]
},
{
"system":       "Greenplum",
"version":      "4.3.9.1",
"data_size":    10000000,
"time":         "",
"comments":     "",
"result":
[
[0.77, 0.77, 0.92],
[0.44, 0.27, 0.46],
[0.95, 0.90, 0.89],
[0.74, 0.91, 0.83],
[1.43, 1.47, 1.44],
[1.74, 1.63, 1.51],
[0.77, 0.83, 0.88],
[1.86, 1.95, 1.86],
[2.09, 1.92, 1.92],
[2.33, 2.41, 2.46],
[0.75, 0.78, 0.77],
[0.71, 0.70, 0.75],
[2.11, 2.22, 2.50],
[2.65, 2.47, 2.59],
[2.11, 2.40, 2.46],
[1.59, 1.66, 1.14],
[1.75, 1.96, 1.71],
[1.29, 1.30, 1.02],
[1.99, 2.25, 2.29],
[0.65, 0.53, 0.49],
[1.23, 0.98, 1.01],
[1.85, 1.81, 1.91],
[1.85, 1.24, 1.17],
[8.21, 3.48, 2.71],
[0.77, 0.49, 0.75],
[0.68, 0.68, 0.88],
[0.76, 0.46, 0.78],
[2.12, 2.07, 2.36],
[3.08, 2.86, 3.12],
[11.50, 11.90, 10.32],
[1.89, 1.85, 1.86],
[1.99, 1.96, 2.02],
[5.24, 4.93, 5.03],
[3.24, 3.40, 3.27],
[3.01, 2.64, 2.65],
[3.14, 2.80, 2.73],
[1.47, 1.14, 1.24],
[1.79, 1.05, 1.13],
[1.32, 1.11, 1.14],
[2.20, 1.51, 1.48],
[1.42, 1.01, 1.02],
[2.17, 1.74, 2.23],
[2.17, 1.70, 1.94]
]
},
{
"system":       "Greenplum",
"version":      "4.3.9.1",
"data_size":    100000000,
"time":         "",
"comments":     "",
"result":
[
[4.11, 4.32, 4.36],
[2.56, 2.53, 2.80],
[4.98, 5.14, 5.45],
[6.64, 5.99, 5.69],
[5.86, 5.72, 5.98],
[6.71, 6.76, 7.36],
[4.25, 4.39, 4.62],
[4.53, 4.23, 4.14],
[9.12, 9.23, 9.18],
[14.77, 15.38, 14.37],
[3.22, 2.87, 3.89],
[4.41, 4.29, 4.89],
[6.78, 7.19, 6.36],
[15.04, 16.93, 16.14],
[7.08, 6.21, 6.96],
[6.83, 6.17, 5.02],
[8.90, 9.81, 9.29],
[6.84, 5.31, 7.67],
[15.33, 16.31, 15.42],
[3.18, 4.29, 3.59],
[8.47, 8.73, 9.91],
[10.40, 8.38, 9.67],
[10.68, 8.16, 7.90],
[50.37, 32.46, 30.45],
[5.21, 3.64, 4.13],
[5.47, 5.68, 5.91],
[4.33, 3.20, 3.83],
[10.76, 11.14, 11.22],
[18.45, 17.26, 16.28],
[96.58, 97.29, 92.61],
[7.23, 7.36, 7.57],
[10.35, 8.20, 9.87],
[38.32, 37.57, 40.99],
[16.27, 15.24, 16.74],
[15.90, 15.33, 16.27],
[13.44, 13.84, 13.24],
[1.92, 1.16, 1.10],
[1.88, 1.16, 1.10],
[1.87, 1.07, 0.98],
[2.71, 1.22, 1.22],
[1.71, 0.97, 1.07],
[2.44, 1.78, 1.68],
[2.19, 1.72, 2.24]
]
},
{
"system":       "Greenplum",
"version":      "4.3.9.1",
"data_size":    1000000000,
"time":         "",
"comments":     "",
"result":
[
[29.01, 32.82, 30.09],
[20.93, 22.20, 20.63],
[34.41, 35.26, 36.59],
[44.01, 41.56, 41.36],
[36.87, 35.96, 39.32],
[46.44, 50.24, 45.50],
[29.22, 31.75, 30.19],
[20.58, 20.76, 24.18],
[56.29, 56.67, 57.36],
[79.13, 81.78, 78.60],
[32.11, 33.21, 29.69],
[33.69, 29.92, 30.92],
[44.85, 42.52, 40.64],
[63.16, 63.16, 64.79],
[47.16, 43.26, 42.45],
[41.04, 43.67, 41.76],
[63.45, 64.64, 60.74],
[48.56, 51.07, 48.81],
[79.89, 81.48, 81.27],
[25.73, 29.27, 31.48],
[72.20, 75.93, 71.44],
[74.50, 73.46, 74.82],
[81.19, 80.76, 78.67],
[339.14, 296.80, 296.95],
[28.51, 31.36, 28.67],
[36.49, 36.47, 38.96],
[31.26, 29.18, 31.65],
[80.03, 83.33, 80.84],
[73.36, 73.27, 73.57],
[961.62, 935.00, 944.02],
[51.55, 50.44, 45.14],
[73.03, 72.86, 70.11],
[29.24, 28.79, 29.78],
[37.51, 39.70, 39.66],
[53.86, 53.37, 53.77],
[84.54, 84.86, 85.62],
[7.01, 1.93, 2.16],
[5.39, 1.55, 1.69],
[6.85, 1.43, 1.57],
[13.18, 3.17, 3.08],
[5.97, 1.30, 1.47],
[5.69, 2.12, 1.96],
[4.11, 2.27, 2.43]
]
}
];

</script>

<script type="text/javascript">

var data_sizes =
[
    { id: "10000000",   name: "10 mln." },
    { id: "100000000",  name: "100 mln." },
    { id: "1000000000", name: "1 bn." }
];

var current_data_size = 1000000000;

var systems = [];
var systems_uniq = {};
for (r in results) {
    if (systems_uniq[results[r].system])
       continue;
    systems_uniq[results[r].system] = 1;
    systems.push(results[r].system);
}

var current_systems = ["ClickHouse", "Vertica", "InfiniDB", "Hive"];

var runs = ["first (cold cache)", "second", "third"];
var current_runs = ['0', '1'];

try {
    var state = JSON.parse(window.location.hash.substring(1));

    current_data_size = state[0];
    current_systems = state[1];
    current_runs = state[2];
} catch (e) {}

function update_hash() {
    window.location.hash = JSON.stringify([ current_data_size, current_systems, current_runs ]);
}


function generate_selectors(elem) {
    var html = "<p id='systems_selector'>Compare: ";

    var available_systems_for_current_data_size = results.
        filter(function(run) { return run.data_size == current_data_size; }).
        map(function(run) { return run.system; });

    for (var i = 0; i < systems.length; i++) {
        var selected = current_systems.indexOf(systems[i]) != -1;
        var available = available_systems_for_current_data_size.indexOf(systems[i]) != -1;

        html += "<span class='" +
            (selected && available ? "selected" : "") +
            (available ? "" : " disabled") +
            "'>" + systems[i] + "</span> ";
    }

    html += "</p>";
    html += "<p id='data_size_selector'>";

    html += "Dataset size: ";

    for (var i = 0; i < data_sizes.length; i++) {
        html += "<span class='" + (data_sizes[i].id == current_data_size ? "selected" : "") + "' data-size-id='" + data_sizes[i].id + "'>" + data_sizes[i].name + "</span> ";
    }

    html += "</p>";
    html += "<p id='runs_selector'>";

    html += "Run number: ";

    for (var i = 0; i < runs.length; i++) {
        html += "<span class='" + (current_runs.indexOf(String(i)) != -1 ? "selected" : "") + "' data-run-id='" + i + "'>" + runs[i] + "</span> ";
    }

    html += "</p>";

    elem.html(html);

    $('#systems_selector span:not(.disabled)').click(function(event) {
        var target = $(event.target || event.srcElement);

        if (target.hasClass("selected") && current_systems.length == 1) {
            return;
        }

        target.toggleClass("selected");

        current_systems = $.map($('#systems_selector span'), function(elem) {
            return $(elem).hasClass("selected") ? $(elem).html() : null }).filter(function(x) { return x; });

        update_hash();
        generate_selectors(elem);
        generate_comparison_table();
        generate_diagram();
    });

    $('#data_size_selector span').click(function(event) {
        var target = $(event.target || event.srcElement);

        current_data_size = target.attr("data-size-id");

        update_hash();
        generate_selectors(elem);
        generate_comparison_table();
        generate_diagram();
    });

    $('#runs_selector span').click(function(event) {
        var target = $(event.target || event.srcElement);

        if (target.hasClass("selected") && current_runs.length == 1) {
            return;
        }

        target.toggleClass("selected");

        current_runs = $.map($('#runs_selector span'), function(elem) {
            return $(elem).hasClass("selected") ? $(elem).attr("data-run-id") : null }).filter(function(x) { return x; });

        update_hash();
        generate_selectors(elem);
        generate_comparison_table();
        generate_diagram();
    });
};


function format_number_cell(value, ratio) {
    var html = "";

    var redness = (ratio - 1) / ratio;
    var blackness = ratio < 10 ? 0 : ((ratio - 10) / ratio / 2);

    var color = !value ? "#FFF" :
        ratio == 1 ?
            ("rgba(0, 255, 0, 1)") :
            ("rgba(" + ~~(255 * (1 - blackness)) + ", 0, 0, " + redness + ")");

    html += "<td class='number_cell' style='background-color: " + color + "'>";
    html += value ?
        (ratio == 1 ? "" : ("x" + ratio.toFixed(2))) + "&nbsp;<span style='color: #888;'>(" + value.toFixed(3) + "&nbsp;s.)</span>" :
        "—";
    html += "</td>";

    return html;
}


/* Отношения времени выполнения запроса к лучшему времени по системам:
 *  номер системы -> номер запуска -> номер запроса -> отношение.
 */
var ratios = [];


function generate_comparison_table() {
    ratios = [];

    var filtered_results = results.filter(function(x) {
        return x.data_size == current_data_size && current_systems.indexOf(x.system) != -1; });

    var html = "";

    html += "<table class='comparison_table'>";

    html += "<tr>";
    html += "<th><input id='query_checkbox_toggler' type='checkbox' checked /></th>";
    html += "<th style='text-align: left;'>Query</th>";
    for (var j = 0; j < filtered_results.length; j++) {
        html += "<th colspan='" + current_runs.length + "'>" + filtered_results[j].system +
            (filtered_results[j].version ? " (" + filtered_results[j].version + ")" : "") + "</th>";
    }
    html += "</tr>";

    for (var i = 0; i < queries.length; i++) {
        html += "<tr>";
        html += "<td><input id='query_checkbox" + i + "' type='checkbox' " +
            ($('#query_checkbox' + i).length == 0 || $('#query_checkbox' + i).is(':checked') ? "checked" : "") + " /></td>";

        html += "<td><div class='query_cell'>" + queries[i].query + "</div></td>";

        // Вычислим максимальное и минимальное время выполнения по системам, для каждого из трёх прогонов.
        var minimums = [0, 0, 0], maximums = [0, 0, 0];

        for (var j = 0; j < filtered_results.length; j++) {
            for (var current_run_idx = 0; current_run_idx < current_runs.length; current_run_idx++) {
                var k = current_runs[current_run_idx];
                var value = filtered_results[j].result[i][k];

                if (value && (!minimums[k] || value < minimums[k])) {
                    minimums[k] = value;

                    // Меньше 10 мс. не различаем.
                    if (minimums[k] < 0.01) {
                        minimums[k] = 0.01;
                    }
                }

                if (value > maximums[k]) {
                    maximums[k] = value;
                }
            }
        }

        for (var j = 0; j < filtered_results.length; j++) {
            if (!ratios[j]) {
                ratios[j] = [];
            }

            for (var current_run_idx = 0; current_run_idx < current_runs.length; current_run_idx++) {
                var k = current_runs[current_run_idx];
                var value = filtered_results[j].result[i][k];

                var ratio = value / minimums[k];

                ratios[j][k] = ratios[j][k] || [];

                if (ratio && ratio <= 1) {
                    ratio = 1;
                }

                ratios[j][k].push(ratio);

                html += format_number_cell(value, ratio);
            }
        }
        html += "</tr>";
    }

    if (current_systems.length) {
        html += "<tr>";
        html += "<td rowspan='2'></td>";
        html += "<td rowspan='2'><div class='query_cell'>Geometric mean of ratios</div></td>";

        for (var j = 0; j < filtered_results.length; j++) {
            for (var k = 0; k < current_runs.length; k++) {
                html += "<th id='totals" + j + "_" + current_runs[k] + "' class='number_cell' style='text-align: center; background-color: #FFF; font-weight: bold;'></th>";
            }
        }

        html += "</tr>";
        html += "<tr>";

        for (var j = 0; j < filtered_results.length; j++) {
            html += "<th id='absolute_totals" + j + "' colspan='" + current_runs.length + "' class='number_cell' style='text-align: center; background-color: #FFF; font-weight: bold;'></th>";
        }

        html += "</tr>";
    }

    html += "</table>";

    $('#comparison_table').html(html);

    for (var i = 0; i < queries.length; i++) {
        $('#query_checkbox' + i).click(function() { calculate_totals(); generate_diagram(); } );
    }
    $('#query_checkbox_toggler').click(function() {
        for (var i = 0; i < queries.length; i++) {
            var item = $('#query_checkbox' + i);
            item.prop("checked", !item.prop("checked"));
        }
    });

    calculate_totals();
}


function calculate_totals() {
    if (!current_systems.length) return;

    var filtered_results = results.filter(function(x) {
        return x.data_size == current_data_size && current_systems.indexOf(x.system) != -1; });

    var total_ratios = [];

    for (var j = 0; j < filtered_results.length; j++) {
        for (var current_run_idx = 0; current_run_idx < current_runs.length; current_run_idx++) {
            var k = current_runs[current_run_idx];

            var current_ratios = ratios[j][k].filter(
                function(x, i) { return x && $("#query_checkbox" + i).is(':checked'); })

            var ratio = Math.pow(
                current_ratios.reduce(
                    function(acc, cur) { return acc * cur; },
                    1),
                1 / current_ratios.length);

            total_ratios[j] = total_ratios[j] || 1;
            total_ratios[j] *= ratio;

            $("#totals" + j + "_" + k).attr("data-ratio", ratio).html("x" + ratio.toFixed(2));
        }
    }

    for (var j = 0; j < filtered_results.length; j++) {
        var total_ratio = Math.pow(total_ratios[j], 1 / current_runs.length);
        $("#absolute_totals" + j).attr("data-ratio", total_ratio).html("x" + total_ratio.toFixed(2));
    }
}


function generate_diagram() {
    var html = "";

    var filtered_results = results.filter(function(x) {
        return x.data_size == current_data_size && current_systems.indexOf(x.system) != -1; });

    var max_ratio = 1;
    var min_ratio = 0;

    var max_total_ratio = 1;
    var min_total_ratio = 0;

    for (var j = 0; j < filtered_results.length; j++) {
        for (var current_run_idx = 0; current_run_idx < current_runs.length; current_run_idx++) {
            var k = current_runs[current_run_idx];
            var ratio = +$("#totals" + j + "_" + k).attr("data-ratio");

            if (ratio > max_ratio) {
                max_ratio = ratio;
            }

            if (!min_ratio || ratio < min_ratio) {
                min_ratio = ratio;
            }
        }

        var total_ratio = +$("#absolute_totals" + j).attr("data-ratio");

        if (total_ratio > max_total_ratio) {
            max_total_ratio = total_ratio;
        }

        if (!min_total_ratio || total_ratio < min_total_ratio) {
            min_total_ratio = total_ratio;
        }
    }

    html += "<table style='width: 100%'>";

    for (var j = 0; j < filtered_results.length; j++) {
        var total_ratio = +$("#absolute_totals" + j).attr("data-ratio");

        html += "<tr>";
        html += "<td style='text-align: right;'><b>" + filtered_results[j].system + "</b>" +
            (filtered_results[j].version ? "<br />(" + filtered_results[j].version.replace(/ /g, '&nbsp;') + ")" : "") + "</td>";

        html += "<td style='width: 100%; padding-right: 20px;'>";

        for (var current_run_idx = 0; current_run_idx < current_runs.length; current_run_idx++) {
            var k = current_runs[current_run_idx];

            var ratio = +$("#totals" + j + "_" + k).attr("data-ratio");
            var percents = (ratio * 100 / max_ratio).toFixed(2);

            if (!ratio) {
                ratio = +$("#absolute_totals" + j).attr("data-ratio");
                percents = (ratio * 100 / max_total_ratio).toFixed(2);
            }

            html += "<div class='bar' style='width: " + percents + "%;'>&nbsp;</div>";

        }

        html += "</td>";

        //min_total_ratio = 1;
        //total_ratio = 1;
        html += "<td style='text-align: right; font-weight: bold;'>" + (total_ratio / min_total_ratio).toFixed(2) + "</td>";
        html += "</tr>";
    }

    html += "</table>";

    $('#diagram').html(html);
}


</script>

<script type="text/javascript">
function getParams() {
    var matches = document.cookie.match(/yandex_login=([\w\-]+)/);
    return (matches && matches.length == 2) ? { "login": matches[1] } : {};
}
</script>

<!-- Yandex.Metrika counter -->
<script src="https://mc.yandex.ru/metrika/watch.js" type="text/javascript"></script>
<script type="text/javascript">
try { var yaCounter18343495 = new Ya.Metrika({id:18343495,
          webvisor:true,
          clickmap:true,
          trackLinks:true,
          accurateTrackBounce:true,
          trackHash:true,
          params: getParams()});
} catch(e) { }
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/18343495" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->

<script type="text/javascript" src="https://yastatic.net/jquery/3.1.1/jquery.min.js"></script>

<div class='island'>

<div style="float: left; margin-right: -100%; margin-top: -1px;">
    <a href="/" title="Main page">
        <svg xmlns="http://www.w3.org/2000/svg" width="45" height="40" viewBox="0 0 9 8">
            <style>
                .o{fill:#fc0}
                .r{fill:#f00}
            </style>
            <path class="r" d="M0,7 h1 v1 h-1 z"/>
            <path class="o" d="M0,0 h1 v7 h-1 z"/>
            <path class="o" d="M2,0 h1 v8 h-1 z"/>
            <path class="o" d="M4,0 h1 v8 h-1 z"/>
            <path class="o" d="M6,0 h1 v8 h-1 z"/>
            <path class="o" d="M8,3.25 h1 v1.5 h-1 z"/>
        </svg>
    </a>
</div>

<h1 class='title'>Performance comparison of analytical DBMS</h1>
</div>

<div class='island'>

<p>Most results are for single server setup. The server is: two socket Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz; 128 GiB RAM; md RAID-5 on 8 6TB SATA HDD; ext4.</p>

<p>Some additional results (marked as x2, x3, x6) are for clustered setup for comparison. These results are contributed from independent teams and hardware specification may differ.</p>

<p>Disclaimer: some results are significantly outdated. Results for MonetDB was obtained at 2013 for version v11.15.11 (Feb2013-SP3). Results for MemSQL was obtained at 2015 for version 3.2. Results for Vertica are from 2015 for version 7.1.1.</p>

</div>

<div class='island'>

<div id='selectors'></div>

<h2>Relative query processing time (lower is better):</h2>
<div id='diagram' style='width: 100%;'></div>

<br />
<h2>Full results:</h2>

<div id='comparison_table'></div>

</div>

<script type="text/javascript">
generate_selectors($('#selectors'));
generate_comparison_table();
generate_diagram();
</script>

    </body>
</html>
